{
 "metadata": {
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.3"
  },
  "orig_nbformat": 2,
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3",
   "language": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2,
 "cells": [
  {
   "source": [
    "# `while` 语句"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "- 循环语句可以使指定的代码块重复指定的次数\n",
    "- 循环语句分成两种，`while` 循环和 `for` 循环"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "source": [
    "- 语法：\n",
    "    ```\n",
    "    while 条件表达式:\n",
    "        代码块\n",
    "    else:\n",
    "        代码块\n",
    "    ```\n",
    "- 流程：\n",
    "    - `while` 语句在执行时会先对 `while` 后的条件表达式进行求值判断\n",
    "        - 如果判断结果为 `True`，则执行循环体（代码块），循环体执行完毕继续对条件表达式继续求值判断，以此类推，直到判断结果为 `False`，则循环终止\n",
    "        - 如果循环有对应的 `else`，则执行 `else` 后的代码块\n",
    "- 条件表达式恒为 `True` 的循环语句，称为死循环，它会一直运行\n",
    "- 循环三要件：\n",
    "    - 初始化表达式 - 通过初始化表达式初始化一个变量\n",
    "    - 条件表达式 - 条件表达式用来设置循环执行的条件\n",
    "    - 更新表达式 - 修改初始化变量的值"
   ],
   "cell_type": "markdown",
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "i = 0\n",
    "while i < 10 :\n",
    "    print(f'i = {i}')\n",
    "    i += 1\n",
    "else:\n",
    "    print('Hello World')"
   ]
  }
 ]
}